15 research outputs found

    Architecture Specifications in C位aSH

    Get PDF
    This paper introduces C位aSH, a novel hardware specification environment, by discussing several non-trivial examples. C位aSH is based on the functional language Haskell, and exploits many of its powerful abstraction mechanisms such as higher order functions, polymorphism, lambda abstraction, pattern matching, type derivation. As a result, specifications in C位aSH are concise and semantically clear, and simulations can be directly executed within a Haskell evaluation environment. C位aSH generates synthesizable low-level VHDL code by applying several transformation rules to a functional specification of a digital circuit

    Hiding State in C位aSH Hardware Descriptions

    Get PDF
    Synchronous hardware can be modelled as a mapping from input and state to output and a new state, such mappings are referred to as transition functions. It is natural to use a functional language to implement transition functions. The CaSH compiler is capable of translating transition functions to VHDL. Modelling hardware using multiple components is convenient. Components in CaSH can be considered as instantiations of functions. To avoid packing and unpacking state when composing components, functions are lifted to arrows. By using arrows the chance of making errors will decrease as it is not required to manually (un)pack the state. Furthermore, the Haskell do-syntax for arrows increases the readability of hardware designs. This is demonstrated using a realistic example of a circuit which consists of multiple components

    Exercises in architecture specification using C位aSH

    Get PDF
    This paper introduces the hardware specification system ClaSH by elaborating on a few non-trivial examples. ClaSH is a compiling system that translates a subset of Haskell into synthesizable VHDL by a rewriting technique. This subset of Haskell includes higher order functions, polymorphism, lambda abstraction, pattern matching, and choice constructs

    Tool Demonstration: CLasH - From Haskell to Hardware

    No full text
    C\ensuremath{\lambda}aSH is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. Polymorphism and higher-order functions provide a level of abstraction and generality that allow a circuit designer to describe circuits in a more natural way than possible with the language elements found in the traditional hardware description languages

    C位aSH: Structural Descriptions of Synchronous Hardware using Haskell

    Get PDF
    C位aSH is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. Polymorphism and higher-order functions provide a level of abstraction and generality that allow a circuit designer to describe circuits in a more natural way than possible with the language elements found in the traditional hardware description languages. Circuit descriptions can be translated to synthesizable VHDL using the prototype C位aSH compiler. As the circuit descriptions, simulation code, and test input are also valid Haskell, complete simulations can be done by a Haskell compiler or interpreter, allowing high-speed simulation and analysis

    Higher-Order Abstraction in Hardware Descriptions with C位aSH

    Get PDF
    Synchronous hardware can be straightforwardly modelled as a function from input and (current) state to an updated state and output. The C位aSH compiler can translate such a transition function, described in a functional language,to synthesisable VHDL. Taking a hardware-oriented viewpoint, components can then be seen as an instantiation of such a transition function. An abstraction called Arrows is used to directly model components by combining a transition function and its state. The abstraction also provides an uniform interface for composition, without losing the referential transparency offered by a functional description. Furthermore, readability of hardware designs is increased by the use of the 纬-syntax, that automatically composes components according to the Arrow interface. The advantages of the Arrow abstraction and the 纬-syntax are demonstrated by means of a realistic example circuit consisting of multiple components. This is a significant extension to C位aSH and enables many high level abstractions

    Tool Demonstration: CLasH - From Haskell to Hardware

    No full text
    C\ensuremath{\lambda}aSH is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. Polymorphism and higher-order functions provide a level of abstraction and generality that allow a circuit designer to describe circuits in a more natural way than possible with the language elements found in the traditional hardware description languages
    corecore